package com.evenmo.hrms.mapper.oldmapper;

import com.evenmo.hrms.mapper.oldmapper.dynaSqlProvider.DeptDynaSqlProvider;
import com.evenmo.hrms.pojo.Dept;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

@Mapper
public interface DeptMapper {
    //动态查询

    /**
     * 动态查询<br/>
     * 可传key为dept,查询dept对象的信息
     * 传入key为likeParams,可以模糊查询name对应的信息
     * @param params 动态查询的参数
     * @return 符合查询条件的部门列表
     */
    @SelectProvider(type = DeptDynaSqlProvider.class, method = "selectByParam")
    public List<Dept> selectByParam(Map<String, Object> params);

    @Select("select * from dept where id=#{id}")
    public Dept selectById(Integer id);


    /**
     * 根据ID删除部门
     *
     * @param id 部门ID
     * @return 删除的数目
     */
    @Delete("delete from dept where id=#{id}")
    public int deleteById(Integer id);


    /**
     * 动态插入部门
     *
     * @param dept 要插入的部门
     * @return 插入的数目
     */
    @Insert("insert into dept(name,remark) values(#{name},#{remark})")
    @Options(keyProperty = "id", useGeneratedKeys = true)
    public int insertByParams(Dept dept);


    /**
     * 动态修改部门
     *
     * @param dept 要修改的部门信息
     * @return 修改的数目
     */
    @UpdateProvider(type = DeptDynaSqlProvider.class, method = "updateByParams")
    public int updateByParams(Dept dept);

    /**
     * 查询所有的部门
     *
     * @return 所有的部门列表
     */
    @Select("select * from dept")
    public List<Dept> selectDepts();
}
